package org.dromara.admin.domain;

import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;

import org.dromara.admin.enums.GeneralEnum;
import org.dromara.admin.enums.MemberEnum;
import org.dromara.admin.enums.SubjectTypeEnum;

import java.io.Serial;

/**
 * 主体信息对象 bi_company
 *
 * @author Lion Li
 * @date 2025-10-10
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("bi_company")
public class Company extends BaseEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主体唯一ID
     */
    @TableId(value = "id")
    private Long id;

    /**
     * 公司编号（如10000021，唯一）
     */
    private String companyCode;

    /**
     * 主体类型：个人(PERSONAL),个体户(SELF_EMPLOYED),企业(ENTERPRISE)
     */
    private SubjectTypeEnum subjectType;

    /**
     * 主体全称
     */
    private String name;

    /**
     * 主体简称
     */
    private String shortName;

    /**
     * 公司名称拼音首字母
     */
    private String namePy;

    /**
     * 签名
     */
    private String signature;

    /**
     * 联系人1（必填）
     */
    private String contactPerson1;

    /**
     * 联系方式1（必填）
     */
    private String contact1;

    /**
     * 联系人2（可选）
     */
    private String contactPerson2;

    /**
     * 联系方式2（可选）
     */
    private String contact2;

    /**
     * 地址-省
     */
    private String province;

    /**
     * 地址-市
     */
    private String city;

    /**
     * 地址-区/县
     */
    private String district;

    /**
     * 详细地址
     */
    private String detailAddress;

    /**
     * 会员模式：免费会员(FREE)、付费会员(PAID)
     */
    private MemberEnum memberMode;

    /**
     * 会员状态：有效会员(VALID)、无效会员(INVALID)
     */
    private MemberEnum memberStatus;

    /**
     * 会员到期时间（如2026-01-01）
     */
    private Date memberExpireTime;

    /**
     * 主体状态：Y-正常，N-冻结
     */
    private GeneralEnum subjectStatus;


}
